package com.wetool.wechat.model.official.menu;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * 抽象菜单按钮
 */
@Data
public abstract class AbstractMenuButton {

    /**
     * 菜单的响应动作类型，view表示网页类型，click表示点击类型，miniprogram表示小程序类型
     */
    protected ButtonType type;

    /**
     * 菜单标题，不超过16个字节，子菜单不超过60个字节
     */
    protected String name;

    /**
     * 菜单KEY值，用于消息接口推送，不超过128字节
     */
    protected String key;

    /**
     * view、miniprogram类型必须	网页链接，用户点击菜单可打开链接，不超过1024字节。type为miniprogram时，不支持小程序的老版本客户端将打开本url。
     */
    protected String url;

    /**
     * media_id类型和view_limited类型必须	调用新增永久素材接口返回的合法media_id
     */
    @JsonProperty(value = "media_id")
    protected String mediaId;

    public AbstractMenuButton(ButtonType type, String name) {
        this.type = type;
        this.name = name;
    }
}
